package com.jie.demo1.common.ulity;
import io.jsonwebtoken.*;
import io.jsonwebtoken.security.Keys;
import javax.crypto.SecretKey;
import java.util.Date;

public class JWTUtil {
    private static final Long OUT_TIME = 60*60*120*1000L; // 这个时间可以自定义，60*60*120*1000L 代表120小时，默认单位是毫秒

    //密钥，工具生成的>256位=32个字符的字符串
    private static String key = "M0PKKI6pYGVWWfDZw90a0lTpGYX1d4AQ";
    //密钥，工具生成的>256位=32个字符的字符串
    private static final SecretKey tokenSignKey = 	Keys.hmacShaKeyFor("M0PKKI6pYGVWWfDZw90a0lTpGYX1d4AQ".getBytes());
    //创建token方法
    public static String createToken(String no, String name) {
        return Jwts.builder().
                setSubject("USER_INFO").
                setExpiration(new Date(System.currentTimeMillis() + OUT_TIME)).
                claim("no", no).
                claim("username", name).
                signWith(tokenSignKey).
                compact();
    }
    //验证token方法
    public static Claims checkToken(String token)  {

            Jws<Claims> claimsJws = Jwts.parserBuilder().setSigningKey(tokenSignKey).
                    build().parseClaimsJws(token); // 解析token，验证token是否有效
            return claimsJws.getBody();

    }



}





